package basic;
import static com.google.common.base.Preconditions.*;

/**
 * Preconditions先决条件，是一个验证的工具集，包含几个非常有用的方法
 * @author tiangh
 * 2013-5-25 下午11:34:13
 */
public class PreconditionsDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		checkPositionIndexDemo();
	}
	
	public static void checkArgumentDemo() {
		int i=5,j=6;
		checkArgument(i>j, "期望 i>j,但是 %s<%s ", i,j);
	}
	/**
	 * 非常简短干练，并在不为null时返回原值
	 */
	public static void checkNotNullDemo() {
		String arg="hello world";
		arg = checkNotNull(arg);
	}
	
	/**
	 * 对索引的有效性进行检查
	 */
	public static void checkPositionIndexDemo() {
		int size;
		String value="dajkhdauihdkadad";
		size=value.length();
		int index=15;
		checkElementIndex(index, size);
		checkPositionIndex(index, size);
		System.out.println(value.charAt(index));
		
		//[start,end) 的索引值在size大小的容器中是否合法
		checkPositionIndexes(1, 15, 19);

	}
	
}
